<?php
header( 'Content-Type: text/html;charset=utf-8' );

$objeto = json_decode($_POST['datos']); 
 /*Recibo un objeto javascript que contiene los datos escritos en el registro y lo convierto a php*/

$name = $objeto->name;
$surname = $objeto->surname; 
$mail = $objeto->mail;
$user = $objeto->user;
$password = $objeto->password;
$password2 = $objeto->password2;
$state = false;
$contarErrores = 0;
$errorName = " ";
$errorSurname = " ";
$errorMail = " ";
$errorPass = " ";
 /*Obtengo cada dato del objeto y creo unas variables que se usarán más adelante*/


if ($name == "" || strlen($name) < 3) { /*Valido el nombre*/
	$errorName = "El nombre no es correcto";
	$contarErrores++;
}

if ($surname == "" || strlen($surname) < 3) { /*Valido el apellido*/
	$errorSurname = "El apellido no es correcto";
	$contarErrores++;

}

if ($mail == "") { /*Valido el mail*/
	$errorMail = "Falta introducir el mail";
	$contarErrores++;

} else if (!$correcto = isMail($mail)) { /*Valido el mail con la expresión regular*/
	$errorMail = "El mail no es vślido";
	$contarErrores++;
}

if ($password == "" || $password2 == "") { /*Compruebo que ambas contraseñas se hallan introducido*/
	$errorPass = "No ha introducido contraseña";
	$contarErrores++;
} else if (!$password == $password2) { /*Si las contraseñas son diferentes*/
	$errorPass = "Las contrase�as deben coincidir";
	$contarErrores++;
} else if (!$correcto = isPass($password)) { /*Valido la contraseña con la expresioń regular*/
	$errorPass = "La contrase�a es poco segura";
	$contarErrores++;
}

if ($user == "" ||strlen($user) < 3 || strlen($user) > 10){ /*Valido que el usuario ha sido introducido*/
	$errorUser = "nombre de usuario incorrecto";
	$contarErrores++;
	$userName = false;
}else{ 
	include 'conexion.php';
	$query = "SELECT user FROM usuarios WHERE user='$user'";
	$result = mysql_query($query); /*Hago consulta a la BBDD para comprobar que el usuario no exista*/
	
	
	if(!$result){
		header("Location: ../error.php"); /*Si no hay resultado en la consulta redirige a error.php*/
	}else if(mysql_num_rows($result) == 0){ /*Si no existe el nombre*/
		$userName = true;
		$state = true;
		$errorUser = " ";
	}else{ /*El usuario ya existe*/
		$userName = false;
		$errorUser = "El nombre de ususario seleccionado ya existe";
	}
	
}

if(!$userName || $contarErrores != 0){ /*Si ya existe el usuario, o si se han detectado errores, creo un array con todos los errores almacenados y los devuelvo al javascript que lo llamó*/
	$errores = array($state,$errorName,$errorSurname,$errorMail,$errorPass,$errorUser);
	echo json_encode($errores);
	
}else{ /*Si todo está bien*/
	$insertar = "INSERT INTO usuarios(nombre,apellido,user,password,email) VALUES ('$name','$surname','$user','$password','$mail')"; /*Creo el usuario con sus datos en la BBDD*/
	
	if (!mysql_query($insertar)) { /*Si ha habido algún problema al insertar*/
		header("Location: ../error.php"); /*Redirijo*/
	}else{ /*Si todo está bien, devuelvo los datos al javascript que lo llamó*/
		$estado = array($state);
		echo json_encode($estado);
	}
}

/*mysql_close();*/

function isMail($mail) { /*Valida si el email es correcto y coincide con la expresión regular*/
	$verdad = preg_match('/^(\w)([.]*[_]*[-]*\w)+@([a-z])+([.]*[a-z])*[.]([a-z]{2,3})$/', $mail);
	return $verdad;
}

function isPass($pass) { /*Valida si la contraseña es correcta y coincide con la expresión regular*/
	$verdad = preg_match('/^(?=.*\d)(?=.*[a-z])(?=.*[A-Z])(?!.*\s).*$/', $pass);
	return $verdad;
}
?>